/** @file
  Register names for VER2 GPIO

Conventions:

  - Register definition format:
    Prefix_[GenerationName]_[ComponentName]_SubsystemName_RegisterSpace_RegisterName
  - Prefix:
    Definitions beginning with "R_" are registers
    Definitions beginning with "B_" are bits within registers
    Definitions beginning with "V_" are meaningful values within the bits
    Definitions beginning with "S_" are register size
    Definitions beginning with "N_" are the bit position
  - [GenerationName]:
    Three letter acronym of the generation is used (e.g. SKL,KBL,CNL etc.).
    Register name without GenerationName applies to all generations.
  - [ComponentName]:
    This field indicates the component name that the register belongs to (e.g. PCH, SA etc.)
    Register name without ComponentName applies to all components.
    Register that is specific to -H denoted by "_PCH_H_" in component name.
    Register that is specific to -LP denoted by "_PCH_LP_" in component name.
  - SubsystemName:
    This field indicates the subsystem name of the component that the register belongs to
    (e.g. PCIE, USB, SATA, GPIO, PMC etc.).
  - RegisterSpace:
    MEM - MMIO space register of subsystem.
    IO  - IO space register of subsystem.
    PCR - Private configuration register of subsystem.
    CFG - PCI configuration space register of subsystem.
  - RegisterName:
    Full register name.

  Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _GPIO_REGS_VER2_H_
#define _GPIO_REGS_VER2_H_

//
// PCH-LP GPIO
//
#define GPIO_VER2_PCH_LP_GPIO_GROUP_MAX        18

#define GPIO_VER2_PCH_LP_GPIO_GPP_B_PAD_MAX    26
#define GPIO_VER2_PCH_LP_GPIO_GPP_T_PAD_MAX    16
#define GPIO_VER2_PCH_LP_GPIO_GPP_A_PAD_MAX    25
#define GPIO_VER2_PCH_LP_GPIO_GPP_R_PAD_MAX    8
#define GPIO_VER2_PCH_LP_GPIO_SPI_PAD_MAX      9
#define GPIO_VER2_PCH_LP_GPIO_GPD_PAD_MAX      17
#define GPIO_VER2_PCH_LP_GPIO_GPP_S_PAD_MAX    8
#define GPIO_VER2_PCH_LP_GPIO_GPP_H_PAD_MAX    24
#define GPIO_VER2_PCH_LP_GPIO_GPP_D_PAD_MAX    21
#define GPIO_VER2_PCH_LP_GPIO_GPP_U_PAD_MAX    24
#define GPIO_VER2_PCH_LP_GPIO_VGPIO_PAD_MAX    27
#define GPIO_VER2_PCH_LP_GPIO_GPP_F_PAD_MAX    25
#define GPIO_VER2_PCH_LP_GPIO_GPP_C_PAD_MAX    24
#define GPIO_VER2_PCH_LP_GPIO_HVCMOS_PAD_MAX   6
#define GPIO_VER2_PCH_LP_GPIO_GPP_E_PAD_MAX    25
#define GPIO_VER2_PCH_LP_GPIO_JTAG_PAD_MAX     10
#define GPIO_VER2_PCH_LP_GPIO_CPU_PAD_MAX      15
#define GPIO_VER2_PCH_LP_GPIO_VGPIO_3_PAD_MAX  91

//
// PCH-H GPIO
//
#define GPIO_VER2_PCH_H_GPIO_GROUP_MAX        19

#define GPIO_VER2_PCH_H_GPIO_GPP_A_PAD_MAX    25
#define GPIO_VER2_PCH_H_GPIO_GPP_R_PAD_MAX    20
#define GPIO_VER2_PCH_H_GPIO_GPP_B_PAD_MAX    24
#define GPIO_VER2_PCH_H_GPIO_VGPIO_0_PAD_MAX  8  // vGPIO_USB_0
#define GPIO_VER2_PCH_H_GPIO_GPP_D_PAD_MAX    24
#define GPIO_VER2_PCH_H_GPIO_GPP_C_PAD_MAX    24
#define GPIO_VER2_PCH_H_GPIO_GPP_S_PAD_MAX    8
#define GPIO_VER2_PCH_H_GPIO_GPP_G_PAD_MAX    16
#define GPIO_VER2_PCH_H_GPIO_VGPIO_PAD_MAX    27
#define GPIO_VER2_PCH_H_GPIO_GPD_PAD_MAX      13
#define GPIO_VER2_PCH_H_GPIO_GPP_E_PAD_MAX    13
#define GPIO_VER2_PCH_H_GPIO_GPP_F_PAD_MAX    24
#define GPIO_VER2_PCH_H_GPIO_VGPIO_3_PAD_MAX  84 // vGPIO_PCIE
#define GPIO_VER2_PCH_H_GPIO_GPP_H_PAD_MAX    24
#define GPIO_VER2_PCH_H_GPIO_GPP_J_PAD_MAX    10
#define GPIO_VER2_PCH_H_GPIO_GPP_K_PAD_MAX    12
#define GPIO_VER2_PCH_H_GPIO_GPP_I_PAD_MAX    15
#define GPIO_VER2_PCH_H_GPIO_JTAG_PAD_MAX     9
#define GPIO_VER2_PCH_H_GPIO_CPU_PAD_MAX      14

//
// PCH-K GPIO
//
#define GPIO_VER2_PCH_K_GPIO_GROUP_MAX        8

#define GPIO_VER2_PCH_K_GPIO_GPP_A_PAD_MAX    24
#define GPIO_VER2_PCH_K_GPIO_GPP_B_PAD_MAX    24
#define GPIO_VER2_PCH_K_GPIO_GPP_C_PAD_MAX    24
#define GPIO_VER2_PCH_K_GPIO_GPP_D_PAD_MAX    24
#define GPIO_VER2_PCH_K_GPIO_GPD_PAD_MAX      8
#define GPIO_VER2_PCH_K_GPIO_JTAG_PAD_MAX     9
#define GPIO_VER2_PCH_K_GPIO_CPU_PAD_MAX      14
#define GPIO_VER2_PCH_K_GPIO_VGPIO_3_PAD_MAX  96

//
// PCH-LP GPIO registers
//
//
// GPIO Community Common Private Configuration Registers
//
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_B     0x0
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_T     0x1
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_A     0x2
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_R     0x3
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPD       0x4
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_S     0x5
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_H     0x6
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_D     0x7
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_U     0x8
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_VGPIO     0x9
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_C     0xA
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_F     0xB
#define V_GPIO_VER2_PCH_LP_GPIO_PCR_MISCCFG_GPE0_GPP_E     0xC


//
// GPIO Community 0 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_PAD_OWN        0x30
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_PAD_OWN        0x38

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_PADCFGLOCK     0x88
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_PADCFGLOCKTX   0x8C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_PADCFGLOCKTX   0x94

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_HOSTSW_OWN     0xB4
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_HOSTSW_OWN     0xB8

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_GPI_IS         0x0108

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_GPI_IE         0x0124
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_GPI_IE         0x0128

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_GPI_GPE_STS    0x0148

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_GPI_GPE_EN     0x0168

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_SMI_STS        0x0180

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_SMI_EN         0x01A0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_NMI_STS        0x01C0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_NMI_EN         0x01E0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_B_PADCFG_OFFSET  0x700
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_T_PADCFG_OFFSET  0x8A0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_A_PADCFG_OFFSET  0x9A0

//
// GPIO Community 1 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_PAD_OWN        0x24
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_PAD_OWN        0x30
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_PAD_OWN        0x3C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_PAD_OWN        0x48

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_PADCFGLOCK     0x88
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_PADCFGLOCKTX   0x8C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_PADCFGLOCK     0xA0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_PADCFGLOCKTX   0xA4

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_HOSTSW_OWN     0xB4
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_HOSTSW_OWN     0xB8
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_HOSTSW_OWN     0xBC
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_HOSTSW_OWN     0xC0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_GPI_IS         0x0108
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_GPI_IS         0x010C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_GPI_IS         0x0110

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_GPI_IE         0x0124
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_GPI_IE         0x0128
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_GPI_IE         0x012C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_GPI_IE         0x0130

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_GPI_GPE_STS    0x0148
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_GPI_GPE_STS    0x014C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_GPI_GPE_STS    0x0150

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_GPI_GPE_EN     0x0168
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_GPI_GPE_EN     0x016C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_GPI_GPE_EN     0x0170

//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_SMI_STS        0x0180  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_SMI_STS        0x0184  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_SMI_STS        0x0188

//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_SMI_EN         0x01A0  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_SMI_EN         0x01A4  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_SMI_EN         0x01A8

//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_NMI_STS        0x01C0  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_NMI_STS        0x01C4  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_NMI_STS        0x01C8

//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_NMI_EN         0x01E0  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_NMI_EN         0x01E4  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_NMI_EN         0x01E8

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_S_PADCFG_OFFSET  0x700
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_H_PADCFG_OFFSET  0x780
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_D_PADCFG_OFFSET  0x900
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_U_PADCFG_OFFSET  0xA50
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_PADCFG_OFFSET  0xBD0

//
// GPIO Community 2 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_PAD_OWN          0x20

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_PADCFGLOCK       0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_PADCFGLOCKTX     0x84

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_HOSTSW_OWN       0xB0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_GPI_IS           0x0100
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_GPI_IE           0x0120

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_GPI_GPE_STS      0x0140
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_GPI_GPE_EN       0x0160


#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPD_PADCFG_OFFSET    0x700

//
// GPIO Community 3 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_CPU_PAD_OWN          0x20
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_3_PAD_OWN      0x28

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_CPU_PADCFGLOCK       0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_CPU_PADCFGLOCKTX     0x84
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_3_PADCFGLOCK   0x88
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_3_PADCFGLOCKTX 0x8C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_CPU_HOSTSW_OWN       0xB0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_3_HOSTSW_OWN   0xB4


#define R_GPIO_VER2_PCH_LP_GPIO_PCR_CPU_PADCFG_OFFSET      0x700
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_VGPIO_3_PADCFG_OFFSET  0x7F0

//
// GPIO Community 4 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_PAD_OWN        0x2C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_PAD_OWN       0x3C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_PAD_OWN        0x40
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_JTAG_PAD_OWN         0x50

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_PADCFGLOCK     0x88
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_PADCFGLOCKTX   0x8C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_PADCFGLOCK    0x90
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_PADCFGLOCKTX  0x94
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_JTAG_PADCFGLOCK      0xA0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_JTAG_PADCFGLOCKTX    0xA4

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_HOSTSW_OWN     0xB4
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_HOSTSW_OWN    0xB8
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_HOSTSW_OWN     0xBC
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_JTAG_HOSTSW_OWN      0xC0

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_GPI_IS         0x0104
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_GPI_IS        0x0108  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_GPI_IS         0x010C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_GPI_IE         0x0124
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_GPI_IE        0x0128  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_GPI_IE         0x012C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_GPI_GPE_STS    0x0144
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_GPI_GPE_STS   0x0148  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_GPI_GPE_STS    0x014C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_GPI_GPE_EN     0x0164
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_GPI_GPE_EN    0x0168  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_GPI_GPE_EN     0x016C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_SMI_STS        0x0180
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_SMI_STS        0x0184  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_SMI_STS       0x0188  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_SMI_STS        0x018C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_SMI_EN         0x01A0
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_SMI_EN         0x01A4  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_SMI_EN        0x01A8  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_SMI_EN         0x01AC

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_NMI_STS        0x01C0
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_NMI_STS        0x01C4  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_NMI_STS       0x01C8  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_NMI_STS        0x01CC

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_NMI_EN         0x01E0
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_NMI_EN         0x01E4  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_NMI_EN        0x01E8  // Not supported setting for this group
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_NMI_EN         0x01EC

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_C_PADCFG_OFFSET  0x700
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_F_PADCFG_OFFSET  0x880
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_HVCMOS_PADCFG_OFFSET 0xA10
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_E_PADCFG_OFFSET  0xA70
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_JTAG_PADCFG_OFFSET   0xC00

//
// GPIO Community 5 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_SPI_PAD_OWN          0x24

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_SPI_PADCFGLOCK       0x88
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_SPI_PADCFGLOCKTX     0x8C

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_SPI_HOSTSW_OWN       0xB4

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_GPI_IS         0x0100

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_GPI_IE         0x0120

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_GPI_GPE_STS    0x0140

#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_GPI_GPE_EN     0x0160


#define R_GPIO_VER2_PCH_LP_GPIO_PCR_GPP_R_PADCFG_OFFSET  0x700
#define R_GPIO_VER2_PCH_LP_GPIO_PCR_SPI_PADCFG_OFFSET    0x780

//
// PCH-H GPIO registers
//
//
// GPIO Community Common Private Configuration Registers
//
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPD     0x0
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_A   0x1
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_R   0x2
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_B   0x3
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_VGPIO_0 0xF  // GPE not supported by this group
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_D   0x4
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_C   0x5
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_S   0x6
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_G   0x7
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_VGPIO   0x8
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_E   0x9
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_F   0xA
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_H   0xB
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_J   0xC
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_K   0xD
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_GPP_I   0xE
#define V_GPIO_VER2_PCH_H_GPIO_PCR_MISCCFG_GPE0_VGPIO_0 0xF  // GPE not supported by this group

//
// GPIO Community 0 Private Configuration Registers
//
//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_PAD_OWN      0x00  // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_PAD_OWN        0x30
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_PAD_OWN        0x3C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_PAD_OWN      0x4C // vGPIO_USB_0

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_PADCFGLOCK     0x00  // Not supported setting for this group
//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_PADCFGLOCKTX   0x00  // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_PADCFGLOCK     0xA0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_PADCFGLOCKTX   0xA4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_PADCFGLOCK   0xA8 // vGPIO_USB_0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_PADCFGLOCKTX 0x9C // vGPIO_USB_0

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_HOSTSW_OWN     0x00  // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_HOSTSW_OWN     0xC0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_HOSTSW_OWN     0xC4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_HOSTSW_OWN     0xC8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_HOSTSW_OWN   0xCC

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_GPI_IS         0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_GPI_IS         0x0108
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_GPI_IS       0x010C

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_GPI_IE         0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_GPI_IE         0x0124
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_GPI_IE         0x0128
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_GPI_IE       0x012C

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_GPI_GPE_STS    0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_GPI_GPE_STS    0x0148
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_GPI_GPE_STS  0x014C

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_GPI_GPE_EN     0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_GPI_GPE_EN     0x0168
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_GPI_GPE_EN   0x016C

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_SMI_STS        0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_SMI_STS        0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_SMI_STS        0x0184
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_SMI_STS        0x0188
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_SMI_STS      0x018C  // Not supported setting for this group

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_SMI_EN         0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_SMI_EN         0x01A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_SMI_EN         0x01A4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_SMI_EN         0x01A8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_SMI_EN       0x01AC

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_NMI_STS        0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_NMI_STS        0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_NMI_STS        0x01C4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_NMI_STS        0x01C8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_NMI_STS      0x01CC

//#define R_GPIO_VER2_PCH_H_GPIO_PCR_SPI_NMI_EN         0x00    // Not supported setting for this group
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_NMI_EN         0x01E0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_NMI_EN         0x01E4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_NMI_EN         0x01E8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_NMI_EN       0x01EC

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_A_PADCFG_OFFSET    0x600
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_R_PADCFG_OFFSET    0x790
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_B_PADCFG_OFFSET    0x8D0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_0_PADCFG_OFFSET  0xA70 // vGPIO_USB_0

//
// GPIO Community 1 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_PAD_OWN        0x30
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_PAD_OWN        0x3C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_PAD_OWN        0x40
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_PAD_OWN        0x4C

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_PADCFGLOCK     0xA0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_PADCFGLOCKTX   0xA4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_PADCFGLOCK     0xA8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_PADCFGLOCKTX   0xAC
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_PADCFGLOCK     0xB0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_PADCFGLOCKTX   0xB4

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_HOSTSW_OWN     0xC0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_HOSTSW_OWN     0xC4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_HOSTSW_OWN     0xC8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_HOSTSW_OWN     0xCC
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_HOSTSW_OWN     0xD0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_GPI_IS         0x0108
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_GPI_IS         0x010C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_GPI_IS         0x0110

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_GPI_IE         0x0124
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_GPI_IE         0x0128
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_GPI_IE         0x012C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_GPI_IE         0x0130

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_GPI_GPE_STS    0x0148
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_GPI_GPE_STS    0x014C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_GPI_GPE_STS    0x0150

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_GPI_GPE_EN     0x0168
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_GPI_GPE_EN     0x016C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_GPI_GPE_EN     0x0170

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_SMI_STS        0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_SMI_STS        0x0184
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_SMI_STS        0x0188
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_SMI_STS        0x018C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_SMI_STS        0x0190

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_SMI_EN         0x01A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_SMI_EN         0x01A4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_SMI_EN         0x01A8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_SMI_EN         0x01AC
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_SMI_EN         0x01B0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_NMI_STS        0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_NMI_STS        0x01C4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_NMI_STS        0x01C8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_NMI_STS        0x01CC
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_NMI_STS        0x01D0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_NMI_EN         0x01E0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_NMI_EN         0x01E4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_NMI_EN         0x01E8
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_NMI_EN         0x01EC
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_NMI_EN         0x01F0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_D_PADCFG_OFFSET  0x600
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_C_PADCFG_OFFSET  0x7A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_S_PADCFG_OFFSET  0x920
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_G_PADCFG_OFFSET  0x9A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_PADCFG_OFFSET  0xAB0

//
// GPIO Community 2 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_PAD_OWN          0x20

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_PADCFGLOCK       0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_PADCFGLOCKTX     0x94

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_HOSTSW_OWN       0xC0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_GPI_IS           0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_GPI_IE           0x0120

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_GPI_GPE_STS      0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_GPI_GPE_EN       0x0160

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_SMI_STS          0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_SMI_EN           0x01A0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_NMI_STS          0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_NMI_EN           0x01E0

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPD_PADCFG_OFFSET    0x600

//
// GPIO Community 3 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_PAD_OWN        0x28
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_PAD_OWN      0x34

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_PADCFGLOCK   0xA0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_PADCFGLOCKTX 0xA4

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_HOSTSW_OWN     0xC0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_HOSTSW_OWN     0xC4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_HOSTSW_OWN   0xC8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_GPI_IS       0x0108

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_GPI_IE         0x0124

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_GPI_GPE_STS  0x0148

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_GPI_GPE_EN   0x0168

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_SMI_STS        0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_SMI_STS        0x0184
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_SMI_STS      0x0188

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_SMI_EN         0x01A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_SMI_EN         0x01A4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_SMI_EN       0x01A8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_NMI_STS        0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_NMI_STS        0x01C4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_NMI_STS      0x01C8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_NMI_EN         0x01E0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_NMI_EN         0x01E4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_NMI_EN       0x01E8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_E_PADCFG_OFFSET    0x600
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_F_PADCFG_OFFSET    0x6D0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_VGPIO_3_PADCFG_OFFSET  0x850

//
// GPIO Community 4 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_PAD_OWN        0x2C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_PAD_OWN        0x34

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_PADCFGLOCK     0x98
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_PADCFGLOCKTX   0x9C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_PADCFGLOCK     0xA0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_PADCFGLOCKTX   0xA4

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_HOSTSW_OWN     0xC0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_HOSTSW_OWN     0xC4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_HOSTSW_OWN     0xC8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_GPI_IS         0x0104
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_GPI_IS         0x0108

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_GPI_IE         0x0124
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_GPI_IE         0x0128

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_GPI_GPE_STS    0x0144
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_GPI_GPE_STS    0x0148

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_GPI_GPE_EN     0x0164
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_GPI_GPE_EN     0x0168

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_SMI_STS        0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_SMI_STS        0x0184
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_SMI_STS        0x0188

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_SMI_EN         0x01A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_SMI_EN         0x01A4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_SMI_EN         0x01A8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_NMI_STS        0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_NMI_STS        0x01C4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_NMI_STS        0x01C8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_NMI_EN         0x01E0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_NMI_EN         0x01E4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_NMI_EN         0x01E8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_H_PADCFG_OFFSET  0x600
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_J_PADCFG_OFFSET  0x780
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_K_PADCFG_OFFSET  0x820

//
// GPIO Community 5 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_PAD_OWN         0x28
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_PAD_OWN          0x30

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_PADCFGLOCK     0x90
#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_PADCFGLOCKTX   0x94
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_PADCFGLOCK      0x98
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_PADCFGLOCKTX    0x9C
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_PADCFGLOCK       0xA0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_PADCFGLOCKTX     0xA4

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_HOSTSW_OWN     0xC0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_HOSTSW_OWN      0xC4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_HOSTSW_OWN       0xC8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_GPI_IS          0x0104
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_GPI_IS           0x0108

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_GPI_IE          0x0124
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_GPI_IE           0x0128

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_GPI_GPE_STS     0x0144
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_GPI_GPE_STS      0x0148

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_GPI_GPE_EN      0x0164
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_GPI_GPE_EN       0x0168

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_SMI_STS        0x0180
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_SMI_STS         0x0184
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_SMI_STS          0x0188

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_SMI_EN         0x01A0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_SMI_EN          0x01A4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_SMI_EN           0x01A8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_NMI_STS        0x01C0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_NMI_STS         0x01C4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_NMI_STS          0x01C8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_NMI_EN         0x01E0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_NMI_EN          0x01E4
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_NMI_EN           0x01E8

#define R_GPIO_VER2_PCH_H_GPIO_PCR_GPP_I_PADCFG_OFFSET  0x600
#define R_GPIO_VER2_PCH_H_GPIO_PCR_JTAG_PADCFG_OFFSET   0x6F0
#define R_GPIO_VER2_PCH_H_GPIO_PCR_CPU_PADCFG_OFFSET    0x780

//
// PCH-K GPIO registers
//

//
// GPIO Community 0 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_PAD_OWN        0x2C

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_PADCFGLOCK     0x88
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_PADCFGLOCKTX   0x8C

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_HOSTSW_OWN     0xB4

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_GPI_IS         0x0104

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_GPI_IE         0x0124

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_GPI_GPE_STS    0x0144

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_GPI_GPE_EN     0x0164

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_SMI_STS        0x0180  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_SMI_STS        0x0184

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_SMI_EN         0x01A0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_SMI_EN         0x01A4

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_NMI_STS        0x01C0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_NMI_STS        0x01C4

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_NMI_EN         0x01E0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_NMI_EN         0x01E4

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_A_PADCFG_OFFSET  0x600
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_B_PADCFG_OFFSET  0x580

//
// GPIO Community 1 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_PAD_OWN        0x20
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_PAD_OWN        0x2C

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_PADCFGLOCKTX   0x84
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_PADCFGLOCK     0x88
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_PADCFGLOCKTX   0x8C

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_HOSTSW_OWN     0xB0
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_HOSTSW_OWN     0xB4

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_GPI_IS         0x0100
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_GPI_IS         0x0104

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_GPI_IE         0x0120
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_GPI_IE         0x0124

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_GPI_GPE_STS    0x0140
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_GPI_GPE_STS    0x0144

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_GPI_GPE_EN     0x0160
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_GPI_GPE_EN     0x0164

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_SMI_STS        0x0180  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_SMI_STS        0x0184

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_SMI_EN         0x01A0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_SMI_EN         0x01A4

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_NMI_STS        0x01C0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_NMI_STS        0x01C4

//#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_NMI_EN         0x01E0  // Not supported setting for this group
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_NMI_EN         0x01E4

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_C_PADCFG_OFFSET  0x400
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPP_D_PADCFG_OFFSET  0x580

//
// GPIO Community 2 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_PAD_OWN          0x20

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_PADCFGLOCK       0x80
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_PADCFGLOCKTX     0x84

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_HOSTSW_OWN       0xB0

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_GPI_IS           0x0100
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_GPI_IE           0x0120

#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_GPI_GPE_STS      0x0140
#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_GPI_GPE_EN       0x0160


#define R_GPIO_VER2_PCH_K_GPIO_PCR_GPD_PADCFG_OFFSET    0x700

//
// GPIO Community 3 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_K_GPIO_PCR_CPU_PAD_OWN          0x20
#define R_GPIO_VER2_PCH_K_GPIO_PCR_VGPIO_3_PAD_OWN      0x28

#define R_GPIO_VER2_PCH_K_GPIO_PCR_CPU_PADCFGLOCK       0x80
#define R_GPIO_VER2_PCH_K_GPIO_PCR_CPU_PADCFGLOCKTX     0x84
#define R_GPIO_VER2_PCH_K_GPIO_PCR_VGPIO_3_PADCFGLOCK   0x88
#define R_GPIO_VER2_PCH_K_GPIO_PCR_VGPIO_3_PADCFGLOCKTX 0x8C

#define R_GPIO_VER2_PCH_K_GPIO_PCR_CPU_HOSTSW_OWN       0xB0
#define R_GPIO_VER2_PCH_K_GPIO_PCR_VGPIO_3_HOSTSW_OWN   0xB4


#define R_GPIO_VER2_PCH_K_GPIO_PCR_CPU_PADCFG_OFFSET      0x700
#define R_GPIO_VER2_PCH_K_GPIO_PCR_VGPIO_3_PADCFG_OFFSET  0x840

//
// GPIO Community 4 Private Configuration Registers
//
#define R_GPIO_VER2_PCH_K_GPIO_PCR_JTAG_PAD_OWN        0x20

#define R_GPIO_VER2_PCH_K_GPIO_PCR_JTAG_PADCFGLOCK     0x80
#define R_GPIO_VER2_PCH_K_GPIO_PCR_JTAG_PADCFGLOCKTX   0x84

#define R_GPIO_VER2_PCH_K_GPIO_PCR_JTAG_HOSTSW_OWN     0xB0


#define R_GPIO_VER2_PCH_K_GPIO_PCR_JTAG_PADCFG_OFFSET  0x700

#endif // _GPIO_REGS_VER2_H_
